package niveis.custom;

import br.com.engine.componentes.Scene;
import br.com.engine.controle.ControleBase;
import br.com.engine.input.EventoTecla;
import br.com.engine.input.KeyMap;
import br.com.engine.input.TecladoAdapter;
import br.com.engine.menu.Menu;

public class Pause extends Scene
{
	public ControleBase   game;
	public TecladoAdapter teclado;

	Menu menu;
	
	@Override
	public void setup( )
	{
		super.setup( );
		
		game    = ControleBase.getInstance( );
		teclado = TecladoAdapter.infNewInstacia( );
		
		menu = new br.com.engine.menu.Menu( );
        
        menu.add( "Continuar",    120, 15 );
        menu.add( "Sair do Jogo", 150, 15 );
		
		mapeiaEventos( );
		defineEventos( );
	}
	
	private void mapeiaEventos( )
	{
		teclado.addkeyTiger( new EventoTecla( KeyMap.UP     ) );
		teclado.addkeyTiger( new EventoTecla( KeyMap.DOWN   ) );
		teclado.addkeyTiger( new EventoTecla( KeyMap.ENTER  ) );
		teclado.addkeyTiger( new EventoTecla( KeyMap.ESCAPE ) );
	}

	private void defineEventos( )
	{
		teclado.addOnPressed( evento ->
		{
			if( evento.getKeyCode( ) == KeyMap.UP.getKey( ) )
			{
			    menu.previus( );
			}
			else if( evento.getKeyCode( ) == KeyMap.DOWN.getKey( ) )
            {
			    menu.next( );
            }
			else if( evento.getKeyCode( ) == KeyMap.ENTER.getKey( ) )
            {
			    if( menu.getIndice( ) == 1 )
			        game.nextScene( game.getLastScene( ) );
                else if( menu.getIndice( ) == 2 )
                    game.stop( );
            }
			else if( evento.getKeyCode( ) == KeyMap.ESCAPE.getKey( ) )
            {
			    game.nextScene( game.getLastScene( ) );
            }
		} );
	}
}